import org.w3c.dom.*;

import javax.xml.soap.Node;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        while (in.hasNextInt()){
            int n = in.nextInt();
            int[] arr = new int[13];
            for (int i = 0; i < arr.length; i++) {
                arr[i] = in.nextInt();
            }
            bucketSort(arr,3);
            System.out.println(Arrays.toString(arr));
        }
    }
    public static void bucketSort(int[] arr,int bucketSize){
        int max = arr[0];
        int min = arr[0];
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }else if (arr[i] < min) {
                min = arr[i];
            }
        }
        //bucketSize表示每个桶存放数据的大小，count表示总共桶的数量
        int count = (max - min) / bucketSize + 1;
        ArrayList<ArrayList<Integer>> bucket = new ArrayList<>(count);
        for (int i = 0; i < count; i++) {
            //根据value的大小存放到不同的桶里，最终的结果是小的出现在前面的桶里，大的出现在最后的桶里，
            //中间的也出现在中间的桶里了，然后再对每个桶进行排序
            bucket.add(new ArrayList<>());
        }
        for (int i = 0; i < arr.length; i++) {
            bucket.get((arr[i] - min) / bucketSize).add(arr[i]);
        }

        int index = 0;
        for (int i = 0; i < bucket.size(); i++) {
            //取出每个桶的数据
            Integer[] array = new Integer[bucket.get(i).size()];
            array = bucket.get(i).toArray(array);
            //每一个桶进行排序，这里面可以选择其他排序算法进行排序
            Arrays.sort(array);
            for (int j = 0; j < array.length; j++) {
                arr[index++] = array[j];
            }
        }
    }
}
